package com.cvpoc.service.impl;

import java.util.List;

import com.cvpoc.dto.CollaborateurLangueDTO;
import com.cvpoc.dto.LangueDTO;
import com.cvpoc.exception.BusinessException;
import com.cvpoc.hibernate.dao.LangueDao;
import com.cvpoc.service.LangueService;

public class LangueServiceImpl implements LangueService {

	private LangueDao langueDao;

	public void setLangueDao(LangueDao langueDao) {
		this.langueDao = langueDao;
	}

	@Override
	public List<CollaborateurLangueDTO> rechercherListLanguesByIdCollaborateur(
			int idCollaborateur) throws BusinessException {
		List<CollaborateurLangueDTO> collaborateurLangueDTOs =  langueDao.findListLanguesByIdCollaborateur(idCollaborateur);
		if(collaborateurLangueDTOs.isEmpty()){
			throw new BusinessException("Ce collaborateur n'a pas de langue associée");
		}
		return collaborateurLangueDTOs;
	}

	@Override
	public void ajouterCollaborateurLangue(
			CollaborateurLangueDTO collaborateurLangueDTO)
			throws BusinessException {
		langueDao.createCollaborateurLangue(collaborateurLangueDTO);
	}

	@Override
	public int createLangue(LangueDTO langueDTO) throws BusinessException {
		return langueDao.createLangue(langueDTO);
	}

	@Override
	public void supprimerCollaborateurLangue(
			CollaborateurLangueDTO collaborateurLangueDTO)
			throws BusinessException {
		langueDao.deleteCollaborateurLangue(collaborateurLangueDTO);
	}

	@Override
	public void modifierCollaborateurLangue(
			CollaborateurLangueDTO collaborateurLangueDTO)
			throws BusinessException {
		langueDao.updateCollaborateurLangue(collaborateurLangueDTO);
	}
	
	public LangueDTO rechercherLangueBydIdLangue(int id) throws BusinessException {
		LangueDTO langueDTO =  langueDao.findLangueById(id);
		return langueDTO;
	}
	
	public List<LangueDTO> rechercherListeLangue() throws BusinessException {
		List<LangueDTO> langueDTO =  langueDao.findAllLangue();
		return langueDTO;
	}
	
	public CollaborateurLangueDTO rechercherLangueBydIdCollaborateur(int idLangue, int idCollaborateur) throws BusinessException {
		CollaborateurLangueDTO collaborateurLangueDTO =  langueDao.findLangueByIdCollaborateur(idLangue, idCollaborateur);
		return collaborateurLangueDTO;
	}

}
